#pragma once

//////////////////////////////////////////////////////////////////////////
//
// Constant buffers used in DirectX shaders.
// Constant buffers should be 16 bytes aligned.
//
//////////////////////////////////////////////////////////////////////////

#include <DirectXMath.h>

#include "utils/Lights.h"

//
// Vertex Shader
//
struct VSImmutable {
    // Texture world matrix
    DirectX::XMFLOAT4X4A mTexW; 
};

struct VSPerFrameBuffer {
    // Entity view projection matrix
    DirectX::XMFLOAT4X4A mViewProj; 
};

//
// Pixel shader
//
struct PSImmutable {
	DirectionalLight mLight;
	Material mMaterial;
};

struct PSPerFrameBuffer {
    DirectX::XMFLOAT3A mEyePosW;    
};